void main() {
  /**
   * Dart提供了健全的空安全机制，默认所有的变量都是非空的
   * 如果某个变量得到了一个null，则代码在编译期就会报错
   */

  // 正常执行情况
  String name = 'Jack';
  print(name);

  // 无法正常执行的代码：在代码编译期就会报错
  // String name2;
  // print(name2.length);

  // 使用可以为空的变量
  // name3? : 表示非空检查，
  // 如果name3为空，不去调用属性或方法，
  // 如果name3不为空，就去调用属性或方法
  String? age = null;
  print(age);
  print(age?.length);
}
